package cc.catface.commom.context;//package cc.catface.ctool.context;
//
//import android.content.Context;
//import android.os.Handler;
//import android.os.Looper;
//import android.os.Message;
//
//import com.iflyrec.sdk.lib_common.BaseApplication;
//
//import java.io.File;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.io.InputStream;
//
///**
// * 资源文件拷贝工具类
// */
//public class ResourceFileUtils {
//
//    private static final int SUCCESS = 1;
//    private static final int FAILED = 0;
//    private FileOperateCallback callback;
//    private volatile boolean isSuccess;
//    private String errorStr;
//
//    public static com.iflyrec.sdk.lib_common.utils.ResourceFileUtils getInstance() {
//        return Holder.instance;
//    }
//
//    private static class Holder {
//        private final static com.iflyrec.sdk.lib_common.utils.ResourceFileUtils instance = new com.iflyrec.sdk.lib_common.utils.ResourceFileUtils();
//    }
//
//    private ResourceFileUtils() {
//    }
//
//    private final Handler handler = new Handler(Looper.getMainLooper()) {
//        @Override
//        public void handleMessage(Message msg) {
//            super.handleMessage(msg);
//            if (callback != null) {
//                if (msg.what == SUCCESS) {
//                    callback.onSuccess();
//                }
//                if (msg.what == FAILED) {
//                    callback.onFailed(msg.obj.toString());
//                }
//            }
//        }
//    };
//
//    public com.iflyrec.sdk.lib_common.utils.ResourceFileUtils copyAssets(final String srcPath, final String descPath) {
//        if (new File(descPath).exists()) {
//            handler.obtainMessage(FAILED, "目标路径文件已存在").sendToTarget();
//            return this;
//        }
//
//
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                copyAssetsToDst(BaseApplication.getContext(), srcPath, descPath);
//                if (isSuccess)
//                    handler.obtainMessage(SUCCESS).sendToTarget();
//                else
//                    handler.obtainMessage(FAILED, errorStr).sendToTarget();
//            }
//        }).start();
//        return this;
//    }
//
//    public void setFileOperateCallback(FileOperateCallback callback) {
//        this.callback = callback;
//    }
//
//    private void copyAssetsToDst(Context context, String srcPath, String dstPath) {
//
//
//        InputStream is = null;
//        FileOutputStream fos = null;
//        try {
//            String[] fileNames = context.getAssets().list(srcPath);
//            if (fileNames.length > 0) {
//                File file = new File(dstPath);
//                if (!file.exists()) file.mkdirs();
//                for (String fileName : fileNames) {
//                    if (!srcPath.equals("")) { // assets 文件夹下的目录
//                        copyAssetsToDst(context, srcPath + File.separator + fileName, dstPath + File.separator + fileName);
//                    } else { // assets 文件夹
//                        copyAssetsToDst(context, fileName, dstPath + File.separator + fileName);
//                    }
//                }
//            } else {
//                File outFile = new File(dstPath);
//                is = context.getAssets().open(srcPath);
//                fos = new FileOutputStream(outFile);
//                byte[] buffer = new byte[1024];
//                int byteCount;
//                while ((byteCount = is.read(buffer)) != -1) {
//                    fos.write(buffer, 0, byteCount);
//                }
//                // 主动同步io
//                fos.getFD().sync();
//                fos.flush();
//            }
//            isSuccess = true;
//        } catch (Exception e) {
//            e.printStackTrace();
//            errorStr = e.getMessage();
//            isSuccess = false;
//        } finally {
//            try {
//                if (null != is) is.close();
//                if (null != fos) fos.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//
//            }
//        }
//    }
//
//    public interface FileOperateCallback {
//        void onSuccess();
//
//        void onFailed(String error);
//    }
//
//}
//
